The present invention relates generally to a computer numerical control, and particularly to a computer numerical control in which the part program block execution may be run in synchronization with a controlling logic engine or run asynchronously based on a program input.
A variety of controls are used to monitor and control various types of machine motion. For example, processor-based controls, such as computer numerical controls or CNCs, are used to control the motion of machines, such as machine tools, that are used in a variety of manufacturing environments. A CNC, for instance, may be used to control the movements of a cutter on a machine tool when machining a part or component for use in the manufacture of a given product.
CNC-type controllers have become very popular due, in part, to their adaptability and relative ease-of-use in controlling machine motion. When machining a part, for example, a machine motion control program, e.g., part program, simply can be loaded into the CNC which then causes the machine to move according to the commands established by the part program. The control is designed to read the part program instructions and provide appropriate outputs to the various servos, stepper motors, etc. that physically move the components of the machine.
The CNC also may be used to monitor multiple items related to motion control. For example, in a closed loop system, a variety of sensors are disposed on the machine to provide outputs to the CNC indicative of various parameters, such as position and speed. The CNC compares the sensed parameters with the programmed parameters to detect and correct for any error between the values. As is understood by those of ordinary skill in the art, CNC-type controllers are able to process a wide variety of data related to controlling machine motion, monitoring machine motion, interaction with other machines, such as tool changers, storing and manipulating part program data, etc.
Traditionally, CNCs have been configured in various ways depending on the CNC design established by the CNC manufacturer and/or end user. For example, CNCs typically have included a visual interface, such as a CRT, and a keyboard that allow machine control programs to be entered or edited directly at the CNC. In some systems, machine control programs can be prepared off site at a workstation, such as a personal computer, that is configured to permit an operator to prepare motion control programs. Personal computers and CNC functions have been mixed or used in cooperation as well. For example, personal computers have been used to execute certain CNC tasks, or CNCs and personal computers have been used in cooperation to execute and/or monitor various aspects of a motion control program.
Regardless of the specific design, a typical controller utilizes a CNC executive for controlling execution of the motion control part program blocks. However, each of the part program blocks is subjected to the control of a logic engine that ultimately decides whether it is appropriate for a given part program block to be executed. Thus, the minimum block cycle time of a CNC system may be limited by the scan frequency of its logic engine. This limitation can restrict the part contours or the feed rates of the control. For example, when machining complex contours, the part program blocks can be extremely short and executable in a time interval less than the logic engine scan time interval. When under control of the logic engine, however, the execution of the subsequent part program block must wait for the completed scan of the logic engine. In other words, the synchronization of block execution with the scan frequency of the logic engine requires that the feed rate be lowered for complex contours.
If, on the other hand, the block execution is not synchronized with the scan rate of the logic engine, the logic engine does not control execution of the part program blocks. This can be problematic during the execution of various program blocks, such as non-motion blocks where logic engine control is necessary to avoid, for example, collision of the CNC spindle with a cooperating component, such as a tool changer.
It would be advantageous to selectively limit the minimum block cycle time for only those part program blocks that actually need to be controlled by the logic engine, while letting the remainder of the blocks execute at a faster rate.
The present invention relates to a computer numerical control system. The system includes a block execution module able to execute a plurality of data blocks in a part program of the type used for controlling a machine. The system also includes a logic engine module able to control the execution of one or more of the plurality of data blocks depending on the parameters of the part program. The logic engine module operates according to a logic engine scan rate and the block execution module operates at a block execution scan rate that is in a synchronous mode or an asynchronous mode with respect to the logic engine scan rate. The system also includes a synchronization control parameter that may be entered in the part program to be executed. The synchronization control parameter is able to initiate a change between the synchronous mode and the asynchronous mode during execution of the part program.
According to another aspect of the invention, a method is provided for executing a part program on a computer numerical control. The method includes executing a plurality of data blocks of a control program at a given block cycle time. The method further includes subjecting at least some of the plurality of data blocks to the control of a logic engine operating at a logic scan rate. The method also includes selectively changing the execution of the plurality of data blocks from a synchronized state with the logic engine to an asynchronized state during execution of the control program.
According to another aspect of the present invention, a method is provided for efficient operation of a computer numerical control. The computer numerical control is of the type that utilizes a logic engine having a logic scan frequency. The method comprises executing certain blocks of a motion control program in synchronization with the logic engine. The method also includes executing other blocks of the motion control program in asynchronization with the logic engine. Additionally, the method includes changing between synchronized execution and asynchronized execution during execution of the motion control program.